home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / cli / okami15.lzh / OKAMI15 / DOC / TRICKS.DOC < prev   
Text File  |  1992-09-20  |  15KB  |  430 lines

  1.  
  2.               ===============================================
  3.  
  4.  
  5. @(#)            OKAMI SHELL VERSION 1.5 - TIPS UND TRICKS
  6.  
  7.  
  8.               ===============================================
  9.                              Stand: 19.9.1992
  10.  
  11.  
  12.  
  13.  
  14.         BITTE ERST DIE DATEIEN README UND OKAMI.DOC LESEN!
  15.  
  16. ----------------------------------------------------------------------------
  17.  
  18.  
  19.  
  20. INHALT
  21.  
  22.  
  23.         Profile
  24.         Aufruf von Programmen
  25.         Benutzung der Shell von Diskette aus
  26.         Beispiel-Shellscripts
  27.                 okback.sh
  28.                 e.sh
  29.                 showpic.sh
  30.                 startprg.sh
  31.         Shell-Funktionen
  32.         Die gemexec-Funktion
  33.         Die screensave-Funktion
  34.         Speichern und Restaurieren der Shell-Einstellungen
  35.         MS-DOS-Gefühle
  36.         C-Shell-Gefühle
  37.         Andere Shells: Gulam, Master und bash
  38.         Die Versionsnummer der Shell
  39.         Diverses
  40.                 Trikolor-Bildschirm
  41.                 Aufruf vom Desktop
  42.                 Uneindeutige Kommandonamen
  43.                 Compiler-Aufruf
  44.                 Ändern von Dateinamen-Extendern
  45.                 Programmierung des UPN-Rechners
  46.  
  47. ----------------------------------------------------------------------------
  48.  
  49.  
  50.  
  51. PROFILE
  52.  
  53. Ich benutze das folgende Profile zum Konfigurieren der Shell. 
  54.  
  55.         # Okami-Shell - System-Profile
  56.  
  57.  
  58.         # Terminaleinstellung (für Termcap etc.)
  59.         TERM=st
  60.         # Cursor etwas schneller blinkend
  61.         cursor +bv 12
  62.         # Aktuelles Directory im Prompt anzeigen
  63.         PS1=['$CWD'] ^^^$'  '
  64.         # Pipes auf die Ramdisk
  65.         PIPDIR=M:\
  66.         # Nach Ende der Shell CWD sichern...
  67.         set +s
  68.         # ...und den Cursor abschalten
  69.         trap cursor -v
  70.         # Directories trennen wie in Unix mit Slash
  71.         set +b
  72.         # anmelden als Applikation, sollte man immer machen
  73.         gon
  74.         # Word Wrap On
  75.         echo ^033v
  76.  
  77.  
  78.         # Bidschirm löschen durch viele Leerzeilen
  79.         echo "^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n"
  80.  
  81.  
  82.         # Einschaltmeldung
  83.         echo
  84.         echo Atari Mega-ST 4 ($TERM)
  85.         # Versionsnummer der Shell, des TOS und von MiNT
  86.         ver -otM
  87.         echo
  88.         # Ausgabe des Datums des letzten Logins
  89.         cat lastlog 2>NULL:
  90.         echo
  91.         # Ausgabe des freien Speichers
  92.         echo Free RAM: `mem` Bytes
  93.         echo
  94.         # Ausgabe in invertierter Schrift
  95.         echo ^033pType help for command survey.^033q
  96.         echo
  97.         # Datum speichern
  98.         echo Last Login: `date` >lastlog
  99.         # Letztes CWD zurückholen
  100.         cd `cat wdir`
  101.  
  102.  
  103. Laufwerk M ist eine Ramdisk,  die die Aufgabe hat,  die Pipe-Operationen
  104. zu  beschleunigen.   Dadurch,   daß die Pipe auf die Ramdisk gelegt wird
  105. (PIPDIR=M:\), erfolgen alle Pipe-Operationen ohne Plattenzugriff. 
  106. Durch  die Einstellung "set +s"  wird die Shell veranlaßt,  vor dem Pro-
  107. grammende das aktuelle Verzeichnis in die Datei $HOME\wdir zu schreiben.
  108. Das Profile benutzt diese Datei,  um das aktuelle Verzeichnis wieder auf
  109. den  alten Wert einzustellen.  So ist man nach dem Start der Shell immer
  110. in dem Verzeichnis,  in dem man war, als man die Shell zuletzt verlassen
  111. hatte. 
  112.  
  113. Durch die Einstellung "set +x"  werden in einer Eingabe alle Slashes (/)
  114. in  Backslashes  (\)   umgeformt,   wodurch  man  die  Möglichkeit  hat,
  115. Dateinamen  wie  in  Unix  einzugeben,   also  shell/bin/sh.ttp  anstatt
  116. shell\bin\sh.ttp. Natürlich erzeugt dann das Kommando 
  117.                               echo 6/3=2 
  118. die Ausgabe 
  119.                                  6\3=2 
  120. ,  da alle Slashes umgeformt werden, aber das stört normalerweise nicht.
  121. (den UPN-Rechner stört es übrigens auch nicht,  da er den Backslash als-
  122. Divisionszeichen versteht. Aus "upn 6 3 /" wird also "upn 6 3 \".) 
  123. Außerdem  kann  man  sich  in  Notfällen mit einfachen Anführungszeichen
  124. retten, 
  125.                              echo '6/3=2' 
  126. ergibt also immer 
  127.                                  6/3=2 
  128.  
  129. ----------------------------------------------------------------------------
  130.  
  131.  
  132.  
  133. AUFRUF VON PROGRAMMEN
  134.  
  135. (Der  folgende Abschnitt ist im wesentlichen für Festplattenbenutzer von
  136. Interesse.) 
  137.  
  138. Viele Programme gehen davon aus,  das sich gewisse Dateien wie z.B. RSCs
  139. im  aktuellen Verzeichnis befinden.  Um ein solches Kommando zu starten,
  140. muß  man  also  mit cd in das jeweilige Verzeichnis wechseln,  was unter
  141. Umständen einige Tipparbeit macht,  vor allem bei einer Festplatte.  Mit
  142. der  Okami-Shell ist es möglich,  Programme von überall,  also von jedem
  143. beliebigen aktuellen Verzeichnis aus zu starten. 
  144. Es   sei   z.B.   GEMTEST.PRG   ein   Programm,   das   im   Verzeichnis
  145. D:\PROG\GEMTEST  steht  und eine RSC-Datei aus dem aktuellen Verzeichnis
  146. nachladen muß. 
  147. Zum Start des Programms müßte man also eingeben 
  148.  
  149.         cd d:\prog\gemtest
  150.         gemtest
  151.  
  152. Man kann allerdings auch so vorgehen: 
  153.  
  154. Man  erzeugt sich eine Datei namens GEMTEST.SH im Verzeichnis $HOME\bin,
  155. die ungefähr so aussieht: 
  156.  
  157.         A=`set -`
  158.         set +x
  159.         d:\prog\gemtest.prg
  160.         set $A
  161.         unset A
  162.  
  163. Zuerst  wird  die aktuelle Einstellung der Flags in der Shellvariablen A
  164. gespeichert,  danach  wird  das  Flag  x  aktiviert.  Wenn  dieses  Flag
  165. aktiviert ist, führt die Shell vor dem Start eines Binärprogramms ein cd
  166. in das Directory aus,  in dem sich das Programm befindet.  Nach dem Ende
  167. des Programms wird das ursprüngliche Directory wieder restauriert. 
  168. Danach wird das Programm gestartet. 
  169. Nach  Programmende  werden  die Shell-Flags werden auf den gespeicherten
  170. Wert  zurückgesetzt.   Danach  wird die lokal verwendete Shellvariable A
  171. freigegeben. 
  172.  
  173. Wenn das Flag -x immer gesetzt ist,  kann man denselben Effekt erreichen
  174. durch: 
  175.  
  176.                 hash gemtest d:/prg/gemtest/gemtest.prg 
  177.  
  178. Normalerweise  ist  das Flag x immer aktiviert.  Programme,  die sich in
  179. einem der in der Shellvariablen PATH gespeicherten Directories befinden,
  180. werden also immer korrekt gestartet, indem man nur ihren Namen eingibt. 
  181.  
  182. ----------------------------------------------------------------------------
  183.  
  184.  
  185.  
  186. BENUTZUNG DER SHELL VON DISKETTE AUS
  187.  
  188. Wenn  möglich,   sollte  man die Shell auf einem schnellen Massespeicher
  189. wie  Festplatte  oder Ramdisk installieren.  Wer die Shell hauptsächlich
  190. mit Disketten benutzt,  ärgert sich vermutlich darüber,  daß es ziemlich
  191. lange  dauert,  bis ein falsch eingetipptes Kommando als solches erkannt
  192. wird,   da  die  Shell  in allen möglichen Ordnern auf der Diskette nach
  193. einer passenden Datei sucht.  Mit den folgenden Einstellungen im Profile
  194. kann die An- zahl dieser Suchoperationen minimiert werden: 
  195.  
  196.         PATH=.,$HOME\bin
  197.         CDPATH=.
  198.  
  199. Wenn  man  den Programm-Suchpfad auf das aktuelle Directory abkürzt (mit
  200. der   Einstellung   "PATH=."),    werden  noch  weniger  Suchoperationen
  201. durchgeführt,  man kann dann allerdings die mitgelieferten externen Kom-
  202. mandos,   die  sich  in dem Directory $HOME\bin befinden sollten,  nicht
  203. mehr von überallher durch den einfachen Kommandonamen aufrufen,  sondern
  204. muß  den  ganzen  Pfad  angeben  (z.B.  nicht einfach "format",  sondern
  205. "$HOME\bin\format.ttp"). 
  206.  
  207. ----------------------------------------------------------------------------
  208.  
  209.  
  210.  
  211. BEISPIEL-SHELLSCRIPTS
  212.  
  213.  
  214.  
  215. 1) okback.sh
  216. Ich  benutze  das  folgende Shellscript zum Sichern der Quelldateien der
  217. Shell auf Diskette. Es wird ein lzh-Archiv auf der Diskette angelegt, in
  218. das  die  seit  dem  letzten Backup geänderten Dateien hineingeschrieben
  219. werden. 
  220.  
  221.         # Temporär-Directory
  222.         DIR=M:/tmp/okbak
  223.         # Liste der zu sichernden Dateien
  224.         FILES=*.c *.h sh.prj doc/*.nr
  225.  
  226.  
  227.         alert stop 1 "Bitte die Okami-Backup-^|Diskette einlegen."      ^
  228.                 "Ok^|Abbruch" ERG
  229.         if [ $ERG = 2 ]
  230.         then
  231.           exit
  232.         fi
  233.  
  234.  
  235.         # Temp-Dir anlegen und Archiv von der Diskette hineinkopieren
  236.         mkdir -r $DIR/
  237.         cp -v a:/okbak.lzh $DIR
  238.  
  239.  
  240.         # geänderte Dateien ins Archiv einfügen.
  241.         # lharc ist ein externes